package py.edu.ucsa.sisale.dao.impl;

import java.util.List;

import javax.persistence.EntityManager;

import py.edu.ucsa.sisale.dao.DaoFactory;
import py.edu.ucsa.sisale.dao.EstadoDAO;
import py.edu.ucsa.sisale.model.dto.Estado;

public class EstadoImpl implements EstadoDAO{
	
	EntityManager em = DaoFactory.getEm();
	public Estado create(Estado estado) {
		try {
			em.getTransaction().begin();
			em.persist(estado);
			em.flush();
			em.getTransaction().commit();
		
			return estado;
			
		} catch (Exception e) {
			//System.out.println("Error al intentar persistir "+e);
			e.printStackTrace();
			return null;
		}
	}

	public Estado update(Estado estado) {
		try{
			em.getTransaction().begin();
			em.merge(estado);
			em.close();
			return estado;
		}
		catch(Exception ex)
		{
			ex.printStackTrace();
			return null;
		}
	}

	public boolean delete(Estado estado) {
		// TODO Auto-generated method stub
		boolean result=false;
		try{
			em.getTransaction().begin();
			em.remove(em.find(Estado.class, estado.getId()));
			em.close();
			return true;
		}
		catch(Exception ex)
		{
			ex.printStackTrace();
			return false;
		}
		
	}

	public Estado findById(Integer key) {
		Estado estado = em.find(Estado.class, key);
		return estado;
	}

	@SuppressWarnings("unchecked")
	public List<Estado> getAll() {
		return em.createQuery("SELECT e FROM Estado e").getResultList();
	}

}
